1. Field of the Invention
The present invention relates to an image forming apparatus that provides user services relating to image forming processes such as copying, printing, scanning, facsimile and the like.
2. Description of the Related Art
Recently, an image forming apparatus (to be referred to as a compound machine hereinafter) that includes functions of a printer, a copier, a facsimile, a scanner and the like in a cabinet is generally known. The compound machine includes a display part, a printing part and an image pickup part and the like in a cabinet. In the compound machine, three pieces of software corresponding to the printer, copier and facsimile respectively are provided, so that the compound machine functions as the printer, the copier, the scanner and the facsimile respectively by switching the software.
According to such a conventional compound machine, application programs corresponding to each of the capabilities such as printing, copying, faxing and scanning are launched. As for the existing application programs, since resource amounts to be used by the applications, and consistency of versions between applications and the system of the compound machine and the like are known beforehand, the applications can be simply installed into the compound machine and can be launched. Therefore, for example, it is not necessary to check resource amounts to be used by the applications before installing the applications or before launching the applications.
Since the conventional compound machine is provided with each software for the printer, the copier, the scanner and the facsimile individually, much time is required for developing the software. Therefore, the applicant has developed an image forming apparatus (compound machine) including hardware resources, a plurality of applications, and a platform including various control services provided between the applications and the hardware resources. The hardware resources include a display part, a printing part and an image pickup part. The applications perform processes intrinsic for user services of printer, copier and facsimile and the like. The platform includes various control services performing management of hardware resources necessary for at least two applications commonly, performing execution control of the applications, and performing image forming processes, when a user service is executed.
According to the compound machine, since the control services are provided separately from the applications, a new application that is developed by a user or a third party vendor can be installed in the compound machine. Therefore, there are following problems.
As for the existing applications such as the copy application, since the version and a necessary resource amount are known beforehand, there is no possibility of malfunction due to inconsistency of version or lack of resources when the application is installed and launched. However, as to the new application developed by the third vendor or the user, the status (version and available resources and the like) of the compound machine is not considered when developing the new application. Thus, there is a possibility that the operation of the compound machine becomes unstable when the new application is launched. More particularly, for example, when a necessary resource amount used by the new application is larger than the available resource amount in the compound machine, the operation of the compound machine may be stopped due to lack of the resource.
In addition, as for the existing applications for copying, printing, faxing and scanning, these applications are configured such that they operate stably even when they are executed simultaneously in the compound machine. However, as for the new application developed by the third party, the new application is not necessarily developed in consideration of compatibility with other applications. Therefore, in a case when the new application and another application are mutually incompatible, if the new application is executed simultaneously with the another application, the new application operates abnormally or does not operate. For solving this problem, it can be considered to assign priorities to applications. However, the priorities should be updated each time when a new application is installed. In addition, for a general user, it is difficult to determine priorities of the applications.
In addition, among new applications developed by the third vendor, there may be a new application that should be executed with another application. If a user executes only the new application that needs the another application, the new application can not provide its full capabilities, or the application may be stopped.